package com.wms.data.pojo;

import java.io.Serializable;

import org.apache.commons.lang.StringUtils;

public class PageModel implements Serializable {

//	Properties properties = PropertiesLoad.loadProp();

	private static final long serialVersionUID = 1L;

	// 頁碼
	private int pageNo;
	
	// 一頁最大顯示筆數
	private int pageSize;
	
	// 總筆數
	private int totalSize;
	
	public PageModel(int pageNo) {
		
		// 设定当前的页码
		this.pageNo = pageNo;
		
		String maxPageSize = "20"; //properties.getProperty("Max.PageSize"); 
		
		if (StringUtils.isEmpty(maxPageSize)) {
			
			// 如果不设定每页最大显示笔数，默认设定为每页最大显示10笔资料
			this.pageSize = 20;
		}
		else {
			
			this.pageSize = Integer.parseInt(maxPageSize);
		}
	}
	
	public PageModel(int pageNo, int limit) {
		
		// 设定当前的页码
		this.pageNo = pageNo;
		
		if (limit == 0) {
			
			this.pageSize = 20;
		}
		else {
			
			this.pageSize = limit;
		}
	}

	/**
	 * 取得当前页码
	 * @return int
	 */
	public int getPageNo() {
		
		this.pageNo = (pageNo < 1) ? 1 : pageNo;
		
		return pageNo;
	}

	/**
	 * 设定当前页码
	 * @param pageNo
	 */
	public void setPageNo(int pageNo) {
		this.pageNo = (pageNo < 1) ? 1 : pageNo;
	}

	/**
	 * 取得每页最大显示资料笔数
	 * @return int
	 */
	public int getPageSize() {
		return pageSize;
	}
	
	/**
	 * 取得最大资料笔数
	 * @return int
	 */
	public int getTotalSize() {
		return totalSize;
	}

	/**
	 * 设定最大资料笔数
	 * @param totalSize
	 */
	public void setTotalSize(int totalSize) {
		this.totalSize = totalSize;
	}

	/**
	 * 取得最大页数
	 * @return int
	 */
	public int getTotalPageNo() {
		
	   return (new Integer(getTotalSize() / getPageSize()).intValue() + ((getTotalSize() % getPageSize() > 0) ? 1 : 0));
	}
	
	/**
	 * 判断是否有下一页
	 * @return boolean
	 */
	public boolean isNext() {
		return (getPageNo() + 1 <= getTotalPageNo());
	}

	/**
	 * 判断是否有上一页
	 * @return boolean
	 */
	public boolean isPrevious() {
		return (getPageNo() - 1 > 0);
	}
}
